package sixth.抽象类与接口的应用.设计模式.工厂设计;

/*public interface Fruit{
    public void eat();
}*/
class Apple1 implements Fruit {
    @Override
    public void eat() {
        System.out.println("吃苹果。。。");
    }
}
class Orange1 implements Fruit{
    @Override
    public void eat() {
        System.out.println("吃橘子。。。");
    }
}
public class 观察程序中的问题 {
    public static void main(String[] args) {
        Fruit f = new Apple1();
        f.eat();
    }
}
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=62528:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 sixth.抽象类与接口的应用.设计模式__工厂设计.观察程序中的问题
吃苹果。。。

Process finished with exit code 0

 */
/**
 * 上面的程序的问题在于
 * 其实主方法相当于一个客户端 如果此时需要更换一个子类 就需要修改主方法的
 * 相对于直接用getXXX()直接获取子类实例来说 实在是繁琐
 * 所以这时候就引入了工厂模式
 */